package org.leetcode.middle.leetcode209;


import java.util.ArrayList;
import java.util.Arrays;
import java.util.Optional;
import java.util.OptionalInt;

public class Solution
{
    public int minSubArrayLen(int target, int[] nums)
    {

        int slow=0;



        int temp =0;


        int result = Integer.MAX_VALUE;

//        ArrayList<Integer> size=new ArrayList<>();

        for (int fast = 0; fast < nums.length; fast++)
        {
            temp =temp+nums[fast];
                    while (temp>=target)
                    {
                        result=Math.min(result,fast-slow+1 );
//                        size.add(fast-slow+1);
                        temp=temp-nums[slow];
                        slow++;
                    }

        }



//        while (slow<=fast)
//        {
//
//            if (temp>=target)
//              {
//                    size.add(fast-slow);
//                    temp=temp-nums[slow];
//                    slow++;
//              }else {
//                temp=temp+nums[fast];
//                fast++;
//            }
//
//        }


        return result==Integer.MAX_VALUE ? 0:result;
    }

    public static void main(String[] args) {
        Solution solution = new Solution();

        int [] nums = {2,3,1,2,4,3};
        int result = solution.minSubArrayLen(7, nums);

        System.out.println(result);
    }
}
